﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Service.Validation.BusinessRules;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;

namespace Sinacor.Servico.Bovespa.Corretagem.BusinessLogic.BusinessRuleValidation
{
    public class CamposObrigatoriosFaixaCorretagem : BaseBusinessRuleValidation<BusinessEntity.FaixaCorretagem>, IBusinessRuleValidation
    {
        #region Campos
        private int _erroObjetoNulo = 109462;
        #endregion

        #region Propriedades
        /// <summary>
        /// Erro Objeto Nulo
        /// </summary>
        public int ErroObjetoNulo
        { 
            get { return _erroObjetoNulo; }
            set { _erroObjetoNulo = value; }
        }
       
        #endregion

        #region IBusinessRuleValidation Members

        public List<Sinacor.Infra.Common.Validation.ValidationError> GetErrors()
        {
            return base.ErrorsList;
        }

        /// <summary>
        /// Método de validação
        /// </summary>
        public void Validate()
        {
            

        if (base.EntityToValidate == null)
            base.AddValidationError(ErroObjetoNulo);


            try
            {
                SinacorValidation validation = new SinacorValidation();
                validation.Validate<BusinessEntity.FaixaCorretagem>(base.EntityToValidate);
                
            }
            catch(ValidationException ex)
            {
                base.AddValidationError(ex.ValidationErrors);
            }
        }

        #endregion
    }
}
